// pages/component/listview/listview.js
Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
    // defaultData（父页面传递的数据-就是引用组件的页面）
    defaultData: {
      type: Object,
      observer: function (newVal, oldVal) {
        if (newVal.height && newVal.height > 0) {
          this.setData({
            height: newVal.height,
          });
        }
        if (newVal.loadStatus) {
          this.setData({
            loadStatus: newVal.loadStatus,
            triggered: false,
          });
        }
      }
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    triggered: false,
    loadStatus: 2, //1:loading, 2:done, 3:no more
    height: 0,
  },

  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function () {
      if (!this.data.height || this.data.height == 0) {
        const height = wx.getSystemInfoSync().windowHeight;
        this.setData({
          height: height,
        });
      }
    },
    moved: function () {},
    detached: function () {},
  },

  // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function () {}, // 此处attached的声明会被lifetimes字段中的声明覆盖
  ready: function () {},

  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show: function () {},
    hide: function () {},
    resize: function () {},
  },


  /**
   * 组件的方法列表
   */
  methods: {
    onRefresh: function () {
      console.log('-- listview refresh');
      this.setData({
        triggered: true,
        loadStatus: 1,
      });
      var myEventDetail = {}; // detail对象，提供给事件监听函数
      var myEventOption = {}; // 触发事件的选项
      this.triggerEvent('refresh', myEventDetail, myEventOption);
      console.log('---- listview refresh 111');
    },

    onLoadMore: function () {
      console.log('-- listview loadMore');
      if (this.data.loadStatus == 3 || this.data.loadStatus == 1) {
        return;
      }
      if (!this.data.triggered) {
        this.setData({
          loadStatus: 1,
        });
      }
      var myEventDetail = {}; // detail对象，提供给事件监听函数
      var myEventOption = {}; // 触发事件的选项
      this.triggerEvent('loadmore', myEventDetail, myEventOption);
      console.log('---- listview loadMore 111');
    },
  }
})